table of contents
SYMLINK(2) | Podręcznik programisty Linuksa | SYMLINK(2) |
NAZWA¶
symlink - tworzenie nowej nazwy dla pliku
SKŁADNIA¶
#include <unistd.h>
int symlink(const char *oldpath, const char *newpath);
OPIS¶
symlink tworzy dowiązanie symboliczne o nazwie newpath które zawiera łańcuch znakowy oldpath.
Dowiązania symboliczne są interpretowane w czasie działania, tak jakby zawartość dowiązania była podstawiana do ścieżki, przeglądanej by znaleźć plik lub katalog.
Dowiązania symboliczne mogą zawierać składniki .., które (jeśli używane na początku dowiązania) odnoszą się do katalogów nadrzędnych katalogu, w którym dane dowiązanie się znajduje.
Dowiązanie symboliczne (znane również pod nazwą miękiego dowiązania) może wskazywać na plik istniejący, lub nie istniejący; ten drugi przypadek znany jest pod pojęciem wiszącego dowiązania.
Prawa dostępu dla dowiązania symbolicznego są nieistotne; jego właścicielstwo jest ignorowane podczas podążania za nim, lecz sprawdzane podczas usuwania lub przemianowywania, gdy dowiązanie jest w katalogu z ustawionym bitem `sticky'.
Jeśli ścieżka newpath istnieje to nie będzie nadpisana.
WARTOŚĆ ZWRACANA¶
Po pomyślnym zakończeniu zwracane jest zero. Po błędzie zwracane jest -1 i odpowiednio ustawiane errno.
BŁĘDY¶
- EPERM
- System plików zawierający pathname nie zezwala na tworzenie dowiązań symbolicznych.
- EFAULT
- oldpath lub newpath wskazuje poza dostępną dla użytkownika przestrzeń adresową.
- EACCES
- Zapis do katalogu zawierającego newpath nie jest dozwolony dla efektywnego UID procesu wywołującego tę funkcję lub jeden z katalogów w newpath nie pozwala na przeszukiwanie (wykonywanie).
- ENAMETOOLONG
- oldpath lub newpath było zbyt długie.
- ENOENT
- Składnik newpath, który powinien być katalogiem, nie istnieje lub jest wiszącym dowiązaniem symbolicznym lub oldpath jest łańcuchem pustym.
- ENOTDIR
- Składnik użyty jako katalog w newpath w rzeczywistości nie jest katalogiem.
- ENOMEM
- Brak pamięci jądra.
- EROFS
- Plik newpath znajduje się na systemie plików tylko dla odczytu.
- EEXIST
- newpath już istnieje.
- ELOOP
- Podczas rozwiązywania newpath napotkano zbyt wiele dowiązań symbolicznych.
- ENOSPC
- Na urządzeniu, zawierającym plik nie ma miejsca na kolejny wpis w katalogu.
- EIO
- Wystąpił błąd we/wy.
UWAGI¶
Nie jest dokonywane sprawdzenie oldpath.
Usunięcie nazwy, na którą wskazuje dowiązanie symboliczne, w rzeczywistości spowoduje skasowanie pliku (chyba że ma jeszcze inne twarde dowiązania). Jeśli zachowanie to nie jest porządane, należy używać link.
ZGODNE Z¶
SVr4, SVID, BSD 4.3 X/OPEN. SVr4 dokumentuje dodatkowe kody błędów EDQUOT i ENOSYS. Zobacz open(2) po wiele plików o tej samej nazwie oraz NFS.
ZOBACZ TAKŻE¶
readlink(2), link(2), unlink(2), rename(2), open(2), lstat(2), ln(1)
1997-08-21 | Linux 2.0.30 |